HAL QSPI IO functions migration

This section provides information about the HAL QSPI IO functions migration.

HAL QSPI IRQ handler function

HAL1

HAL2

HAL_QSPI_IRQHandler(QSPI_HandleTypeDef *hqspi);
HAL_XSPI_IRQHandler(hal_xspi_handle_t *hxspi);

HAL QSPI indirect mode

HAL QSPI command

HAL1

HAL2

HAL_QSPI_Command(QSPI_HandleTypeDef *hqspi,
                 QSPI_CommandTypeDef *cmd,
                 uint32_t Timeout);
HAL_XSPI_SendRegularCmd(hal_xspi_handle_t *hxspi,
                        const hal_xspi_regular_cmd_t *p_cmd,
                        uint32_t timeout_ms)

HAL QSPI command IT

HAL1

HAL2

HAL_QSPI_Command_IT(QSPI_HandleTypeDef *hqspi,
                    QSPI_CommandTypeDef *cmd);
HAL_XSPI_SendRegularCmd_IT(hal_xspi_handle_t *hxspi,
                           const hal_xspi_regular_cmd_t *p_cmd)

HAL QSPI Transmit

HAL1

HAL2

HAL_QSPI_Transmit(QSPI_HandleTypeDef *hqspi,
                  uint8_t *pData,
                  uint32_t Timeout);
HAL_XSPI_Transmit(hal_xspi_handle_t *hxspi,
                  const void *p_data,
                  uint32_t timeout_ms);

HAL QSPI receive

HAL1

HAL2

HAL_QSPI_Receive(QSPI_HandleTypeDef *hqspi,
                 uint8_t *pData,
                 uint32_t Timeout);;
HAL_XSPI_Receive(hal_xspi_handle_t *hxspi,
                 void *p_data,
                 uint32_t timeout_ms);

HAL QSPI transmit IT

HAL1

HAL2

HAL_QSPI_Transmit_IT  (QSPI_HandleTypeDef *hqspi,
                       uint8_t *pData);
HAL_XSPI_Transmit_IT(hal_xspi_handle_t *hxspi,
                     const void *p_data);

HAL QSPI receive IT

HAL1

HAL2

HAL_QSPI_Receive_IT(QSPI_HandleTypeDef *hqspi,
                    uint8_t *pData);
HAL_XSPI_Receive_IT(hal_xspi_handle_t *hxspi,
                    void *p_data);

HAL QSPI transmit DMA

HAL1

HAL2

HAL_QSPI_Transmit_DMA (QSPI_HandleTypeDef *hqspi,
                       uint8_t *pData);
HAL_XSPI_Transmit_DMA(hal_xspi_handle_t *hxspi,
                      const void *p_data);

HAL QSPI receive DMA

HAL1

HAL2

HAL_QSPI_Receive_DMA(QSPI_HandleTypeDef *hqspi,
                     uint8_t *pData);
HAL_XSPI_Receive_DMA(hal_xspi_handle_t *hxspi,
                     void *p_data);

HAL QSPI status flag polling mode functions

HAL QSPI auto polling

HAL1

HAL2

HAL_QSPI_AutoPolling(QSPI_HandleTypeDef *hqspi,
                     QSPI_CommandTypeDef *cmd,
                     QSPI_AutoPollingTypeDef *cfg,
                     uint32_t Timeout);
HAL_XSPI_SendRegularCmd(hal_xspi_handle_t *hxspi,
                        const hal_xspi_regular_cmd_t *p_cmd,
                        uint32_t timeout_ms)

HAL_XSPI_ExecRegularAutoPoll(hal_xspi_handle_t *hxspi
                             const hal_xspi_auto_polling_config_t *p_config,
                             uint32_t timeout_ms);

Example usage

HAL1

HAL2

QSPI_CommandTypeDef     sCommand;
QSPI_AutoPollingTypeDef sConfig;

sConfig.Match           = 0x02;
sConfig.Mask            = 0x02;
sConfig.MatchMode       = QSPI_MATCH_MODE_AND;
sConfig.StatusBytesSize = 1;
sConfig.Interval        = 0x10;
sConfig.AutomaticStop   = QSPI_AUTOMATIC_STOP_ENABLE;

sCommand.Instruction    = READ_STATUS_REG_CMD;
sCommand.DataMode       = QSPI_DATA_1_LINE;

HAL_QSPI_AutoPolling(&QSPIHandle, &sCommand, &sConfig, HAL_QPSI_TIMEOUT_DEFAULT_VALUE);
hal_xspi_regular_cmd_t          sCommand;
hal_xspi_auto_polling_config_t sConfig;

command.instruction          = MX25_READ_STATUS_REG_CMD;
command.instruction_mode     = HAL_XSPI_INSTRUCTION_1LINE;
command.instruction_width    = HAL_XSPI_INSTRUCTION_8BIT;
command.addr_mode            = HAL_XSPI_ADDR_NONE;
command.data_mode            = HAL_XSPI_REGULAR_DATA_1LINE;
command.data_dtr_mode_status = HAL_XSPI_DATA_DTR_DISABLED;
command.size_byte            = 1U
HAL_XSPI_SendRegularCmd(&XSPIHandle, &sCommand, HAL_XSPI_TIMEOUT_DEFAULT_VALUE);

sConfig.match_mask     = MX25_WRITE_ENABLE_MASK_VALUE;
sConfig.match_value    = MX25_WRITE_ENABLE_MATCH_VALUE;
sConfig.match_mode     = HAL_XSPI_MATCH_MODE_AND;
sConfig.interval_cycle = MX25_AUTO_POLLING_INTERVAL;
sConfig.automatic_stop_status = HAL_XSPI_AUTOMATIC_STOP_ENABLED;
HAL_XSPI_ExecRegularAutoPoll(&XSPIHandle, &sConfig, HAL_XSPI_TIMEOUT_DEFAULT_VALUE);

HAL QSPI auto polling IT

HAL1

HAL2

HAL_QSPI_AutoPolling_IT(QSPI_HandleTypeDef *hqspi,
                        QSPI_CommandTypeDef *cmd,
                        QSPI_AutoPollingTypeDef *cfg);
HAL_XSPI_SendRegularCmd(hal_xspi_handle_t *hxspi,
                        const hal_xspi_regular_cmd_t *p_cmd,
                        uint32_t timeout_ms)

HAL_XSPI_ExecRegularAutoPoll_IT(hal_xspi_handle_t *hxspi,
                                const hal_xspi_auto_polling_config_t *p_config);

Example usage

HAL1

HAL2

QSPI_CommandTypeDef     sCommand;
QSPI_AutoPollingTypeDef sConfig;

sCommand.InstructionMode   = QSPI_INSTRUCTION_1_LINE;
sCommand.Instruction       = READ_STATUS_REG_CMD;
sCommand.AddressMode       = QSPI_ADDRESS_NONE;
sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
sCommand.DataMode          = QSPI_DATA_1_LINE;
sCommand.DummyCycles       = 0;
sCommand.DdrMode           = QSPI_DDR_MODE_DISABLE;
sCommand.DdrHoldHalfCycle  = QSPI_DDR_HHC_ANALOG_DELAY;
sCommand.SIOOMode          = QSPI_SIOO_INST_EVERY_CMD;

sConfig.Match           = 0x02;
sConfig.Mask            = 0x02;
sConfig.MatchMode       = QSPI_MATCH_MODE_AND;
sConfig.StatusBytesSize = 1;
sConfig.Interval        = 0x10;
sConfig.AutomaticStop   = QSPI_AUTOMATIC_STOP_ENABLE;

HAL_QSPI_AutoPolling_IT(&QSPIHandle, &sCommand, &sConfig);
hal_xspi_regular_cmd_t          sCommand;
hal_xspi_auto_polling_config_t sConfig;

sCommand.instruction = READ_STATUS_REG_CMD;
sCommand.data_mode   = HAL_XSPI_REGULAR_DATA_1LINE;
sCommand.size_byte   = 1;
HAL_XSPI_SendRegularCmd(&XSPIHandle, &sCommand, HAL_XSPI_TIMEOUT_DEFAULT_VALUE);

sConfig.match_value = 0x02;
sConfig.match_mask  = 0x02;
HAL_XSPI_ExecRegularAutoPoll_IT(&XSPIHandle, &sConfig);

HAL QSPI memory-mapped mode functions

HAL QSPI memory mapped

HAL1

HAL2

HAL_QSPI_MemoryMapped(QSPI_HandleTypeDef *hqspi,
                      QSPI_CommandTypeDef *cmd,
                      QSPI_MemoryMappedTypeDef *cfg);
HAL_XSPI_SendRegularCmd(hal_xspi_handle_t *hxspi,
                        const hal_xspi_regular_cmd_t *p_cmd,
                        uint32_t timeout_ms)

HAL_XSPI_StartMemoryMappedMode(hal_xspi_handle_t *hxspi,
                               const hal_xspi_memory_mapped_config_t *p_config)

Example usage

HAL1

HAL2

QSPI_CommandTypeDef      sCommand;
QSPI_MemoryMappedTypeDef sMemMappedCfg;

sCommand.Instruction = 0xFF;
sCommand.DummyCycles = QSPI_ALTERNATE_BYTES_8_BITS;

sMemMappedCfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_DISABLE;

HAL_QSPI_MemoryMapped(&QSPIHandle, &sCommand, &sMemMappedCfg);
hal_xspi_regular_cmd_t          sCommand;
hal_xspi_memory_mapped_config_t sMemMappedCfg;

sCommand.operation_type       = HAL_XSPI_OPERATION_READ_CFG;
sCommand.instruction          = 0xFF;
sCommand.dummy_cycle          = 0x8U;
sCommand.dqs_mode_status      = HAL_XSPI_DQS_ENABLED;
HAL_XSPI_SendRegularCmd(&XSPIHandle, &sCommand, HAL_XSPI_TIMEOUT_DEFAULT_VALUE);

sMemMappedCfg.timeout_activation      = HAL_XSPI_TIMEOUT_ENABLE;
sMemMappedCfg.timeout_period_cycle    = 0x20;
HAL_XSPI_StartMemoryMappedMode(&XSPIHandle, &sMemMappedCfg);